//
// Created by jm on 2022/1/20.
//

#ifndef UNTITLED2__TIMER_H_
#define UNTITLED2__TIMER_H_
#include <string>
class Timer {
 public:
  explicit Timer(std::string name);
  ~Timer();;
 private:
  int64_t start_;
  int64_t end_{};

  std::string name_;
};
//************************************
// Method:    string_replace
// FullName:  string_replace
// Access:    public
// Returns:   void
// Qualifier: 把字符串的strsrc替换成strdst
// Parameter: std::string & strBig
// Parameter: const std::string & strsrc
// Parameter: const std::string & strdst
//************************************
void string_replace(std::string &strBig, const std::string &strsrc, const std::string &strdst);

//************************************
// Method:    GetFileOrURLShortName
// FullName:  GetFileOrURLShortName
// Access:    public
// Returns:   std::string
// Qualifier: 获取路径或URL的文件名（包括后缀，如 C:\Test\abc.xyz --> abc.xyz）
// Parameter: std::string strFullName
//************************************
std::string GetPathOrURLShortName(std::string strFullName);



#define AL_FUNCTION_TIMER static std::string _al_time_name = GetPathOrURLShortName(std::string(__FILE__))+std::string(": ")+std::string(__FUNCTION__) + ": "; \
                          volatile Timer  timer(_al_time_name);

#endif //UNTITLED2__TIMER_H_
